/**
 * @file MainWindow.h
 *
 * MainWindow provides a main application window.
 * It offers a menu bar, a status bar and in the center a widget that presents the 3D object.
 *
 * @author Markus Haecker
 * @date 2010-04-14
 */

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui>
#include "ui_MainWindow.h"
#include "GlWidget.h"

class MainWindow : public QMainWindow
{
	Q_OBJECT

public:
	MainWindow(QString file = QString(), QWidget* parent = 0);
	~MainWindow();

private:
	Ui::MainWindowClass ui;
	GlWidget* glWidget;
	IScene* scene;
	QVector<QAction*> actionRenderMode;
	QActionGroup* renderModesAlignmentGroup;

	void showMenuRenderModes();
	void connectSignalsAndSlots();

private slots:
	void notYet();
	void open();
	void close();
	void exit();
	void setBackgroundColor();
	void setObjectColor();
	void resetView();
	void toggleXzPlane();
	void toggleXyPlane();
	void toggleYzPlane();
	void toggleAxes();
	void setRenderMode();
	void about();
	void aboutQt();
	void syncMenu();
	void help();
};

#endif // MAINWINDOW_H
